/**************************************************************
* Copyright (C) 2023 www.eipflow.com 孙泽伟版权所有(盗版必究)
*
* 作者: 孙泽伟(QQ 1039318332)
* 创建时间: 2023/6/30 14:30:08
* 文件名: SystemReportUnitRepository
* 描述: 系统报表模块单元数据访问接口实现
* 
* 修改历史
* 修改人：
* 时间：
* 修改说明：
*
**************************************************************/
using EIP.System.Models.Dtos.ReportUnit;

namespace EIP.System.Repository.Impl
{
    /// <summary>
    /// 系统报表模块单元数据访问接口实现
    /// </summary>
    public class SystemReportUnitRepository :ISystemReportUnitRepository
    {
         /// <summary>
        /// 分页获取
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public Task<PagedResults<SystemReportUnitFindOutput>> Find(SystemReportUnitFindInput input)
        {
            var sql = new StringBuilder($@"SELECT  
                                                  unit.UnitId,
                                                  unit.UnitTypeId,
                                                  unit.Name,
                                                  unit.Type,
                                                  unit.Remark,
                                                  unit.Config,
                                                  unit.OrderNo,
                                                  unit.CreateTime,
                                                  unit.CreateUserName,
                                                  unit.UpdateTime,
                                                  unit.UpdateUserName,
                                                  unittype.Name UnitTypeName,
                                                   @rowNumber, @recordCount FROM system_report_unit unit left join system_report_unit_type unittype on unit.UnitTypeId=unittype.UnitTypeId @where ");
            
            if (input.Sort.IsNullOrEmpty())
            {
                input.Sort = " unit.Id ";
            }
            return new SqlMapperUtil().PagingQuerySqlAsync<SystemReportUnitFindOutput>(sql.ToString(), input);
        }
    }
}